注意:在平台上创建镜像,常有失败,常见原因如下:
- 引用docker hub上的镜像,尤其是大镜像,下载需要时间,也有概率出错。平台限一次编译在30分钟内完成,超时将失败,对于编译失败的镜像,并不会多次执行。
- 引用私有镜像
- dockerfile中包含大量的安装命令,如从github拉取代码,常由于github不可达而失败
- 语法错误
- 由于平台只能上传dockerfile,所以
ADD
,COPY
命令不可用
30分钟是所有过程的总限时,拉取基础镜像、运行Dockerfile中的其他命令、推送到内网的仓库,要求在30分钟完成。同样的编译过程,再次提交,假如上一次的缓存未被清理(docker自带的机制),是可能能接着进行的。
有两种比较推荐的:
- 引用平台现有的镜像(在任务详情里可以找到具体的信息,格式如10.11.3.8:5000/user-images/xxxx),然后需要安装的软件和包,都通过镜像站点完成。这样可以减少拉取镜像、获取软件包失败的可能。尤其是你已经在平台有一个镜像了,想进行小幅修改的时候。
- 自己编译好后,推送到国内站点(如阿里云),然后在dockerfile中直接FROM。注意,如果你的镜像很大,没及时拉取完成,也会导致镜像生成失败。
=====分割线=====
当用户对深度学习环境、开发库有特殊需求时,可自定义镜像。
最多支持每个用户维护三个自定义镜像。在创建训练任务时,系统会根据编程语言和算法框架,优先推荐用户的自定义镜像。镜像管理页面如下图所示,用户可以进行新建镜像、删除、查看等操作。
新建镜像
BitaHub是通过上传Dockerfile文件,在服务器中编译镜像
的方式新建镜像,在新建镜像之前需编写Dockerfile文件,文件需符合Dockerfile编码规范。点击 新建镜像 按钮进入新建镜像页面,填写必要的参数、上传Dockerfile文件,然后提交创建。当镜像处于生成中时,列表将显示“生成中”,生成完成后会显示该镜像的地址,生成的镜像将存储在平台的镜像仓库中。
参数填写说明:
镜像名称
必填项。
用于标识镜像的唯一ID,长度要求为1~50个字符(含),支持字母、数字及标点符号,名称不能重复。编程语言和算法框架
必填项。
选择该镜像的编程语言和算法框架信息。在创建训练任务时,系统会根据编程语言和算法框架,优先列出用户的自定义镜像。上传Dockerfile
必填项。
Dockerfile文件需符合编码规范。建议在本地环境进行编译测试,确保Dockerfile没问题后再提交。只能上传一个文件。镜像简介
非必填项。
描述该镜像的作用,最多不能超过10000个字符(含)。